Address bar user interface control

ABSTRACT

An address bar user interface control includes one or more interactive segments. A segment may include one or more filters or selection criteria for selecting content from physical and/or virtual locations. In some instances, a segment may include two or more filters or selection criteria which are logically combined for selecting content.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.12/967,827, filed Dec. 14, 2010; which is a continuation of U.S. patentapplication Ser. No. 11/111,973, filed Apr. 22, 2005, which issued asU.S. Pat. No. 7,853,890 on Dec. 14, 2010; which is acontinuation-in-part of U.S. patent application Ser. No. 10/420,040,filed Apr. 17, 2003, which issued as U.S. Pat. No. 7,240,292 on Jul. 3,2007. The entire contents of each are incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to graphical user interface controls and,in particular, to a graphical user interface control for navigatingwithin a computer file system.

BACKGROUND OF THE INVENTION

As users navigate within a file system on a computer, a conventionalgraphical interface control, referred to as an address bar, shows theusers where they are in the file system hierarchy. The conventionaladdress bar shows the current location in terms of the file system'shierarchical structure of folders, subfolders, and files. Altering theuser's location displayed in the conventional address bar is typicallyperformed in one of two manners. The first is to manually edit theaddress in the address bar. Manually editing the address in the addressbar permits a user to relocate to any number of locations in the filesystem hierarchy, but requires the user to have specific informationregarding the organization of the file system on the computer, i.e., aspecific file system location. The second method involves using externalnavigation tools which, when manipulated, update the address bar toreflect the new address or location. While bypassing the manual edit ofthe address in the address bar, manipulating external navigation toolsstill requires the user to have specific information concerning theorganization of the file system and traverse the hierarchical structure.However, conventional address bars cannot reference files or data storedamong multiple file system locations, such as folders or drives, due toa one-to one relationship between the address in the address bar and aspecific location in the file system hierarchy.

The prior art lacks an address bar that allows users to specifyaddresses that display files stored among multiple file systemlocations. The prior art further lacks an address bar that also permitsusers to easily modify the address of the address bar without manuallyediting the address, or requiring specific knowledge concerning theorganization of the underlying file system. Also lacking in the priorart is an address bar that presents alternative selections of files tothe user from which the user may select to navigate to those selectionsof files. Such an address bar could also selectively present aconventional address bar interface to the user enabling the user tointeract with the address bar according to previous experience accordingto user preferences.

SUMMARY OF THE INVENTION

An address bar for selecting content stored in a physical or virtuallocation is provided. The address bar may comprise one or more segments.A segment may correspond to a filter or selection criteria for selectingstored content. In some instances, a segment may include more than onefilter or selection criteria, where the content corresponding to each ofthe filters or selection criteria in the segment may be represented.Collectively, the corresponding filters of the segments in the addressbar represent an address for selecting content stored on a computer filesystem. Additionally, each segment may be an interactive segment thatcan respond to user interactions to modify the address of the addressbar. Selecting a segment in the address bar may cause those segmentssubsequent to the selected segment to be removed from the address bar.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a block diagram of an exemplary computer system suitable forimplementing the present invention;

FIG. 2 is a pictorial diagram of an exemplary networked computerenvironment suitable for implementing the present invention;

FIG. 3 is a pictorial diagram illustrating an exemplary file viewerhaving a conventional address bar associated with displaying files in acomputer file system, as found in the prior art;

FIG. 4 is a pictorial diagram illustrating an exemplary file viewer fordisplaying files in a computer file system in accordance with a virtualaddress in a virtual address bar formed in accordance with the presentinvention;

FIG. 5A is a pictorial diagram of the exemplary file viewer of FIG. 4illustrating selecting a segment of the virtual address in the virtualaddress bar to navigate in the file system;

FIG. 5B is a pictorial diagram of the exemplary file viewer of FIG. 5Aillustrating the results of selecting a segment of the virtual addressin the virtual address bar;

FIG. 5C is a pictorial diagram illustrating an exemplary file viewer fordisplaying files in a computer file system in which a segment of thevirtual address includes more than one filter.

FIGS. 6A-6D are pictorial diagrams illustrating selecting a peer filterassociated with a segment of a virtual address in a virtual address bar;

FIGS. 7A-7D are pictorial diagrams illustrating adding additionalfilters to a virtual address in a virtual address bar;

FIGS. 8A and 8B are pictorial diagrams illustrating an exemplary virtualaddress bar displaying a virtual address where the virtual addressexceeds the virtual address bar's display capacity;

FIG. 8C is a pictorial diagram illustrating an exemplary virtual addressbar displaying a virtual address in an overflow condition according toone aspect of the present invention.

FIG. 9A is a pictorial diagram illustrating an exemplary virtual addressbar having a virtual address with filters referencing both virtual andactual locations in a file system;

FIG. 9B is a pictorial diagram illustrating the exemplary virtualaddress bar of FIG. 9A as configured to display a conventional addressbar;

FIG. 10 is a flow diagram illustrative of an alternate filter selectionroutine for selecting alternate filters in a virtual address bar;

FIG. 11 is a flow diagram illustrating an illustrative add filterroutine for adding a filter to a virtual address in a virtual addressbar.

FIG. 12 is a flow diagram illustrative of a child filter selectionroutine for selecting child filters in a virtual address bar accordingto aspects of the present invention; and

FIGS. 13A-13D are pictorial diagrams illustrating selecting a childfilter associated with a segment of a virtual address in a virtualaddress bar.

DETAILED DESCRIPTION

FIG. 1 and the following discussion are intended to provide a brief,general description of a computing system suitable for implementingvarious features of the invention. While the computing system will bedescribed in the general context of a personal computer usable in adistributed computing environment, where complementary tasks areperformed by remote computing devices linked together through acommunications network, those skilled in the art will appreciate thatthe invention may be practiced with many other computer systemconfigurations, including multiprocessor systems, minicomputers,mainframe computers, and the like. The invention may be practiced in alocal area network or, alternatively, on a single computer usinglogical, rather than physically remote, devices.

While aspects of the invention may be described in terms of applicationprograms that run on an operating system in conjunction with a personalcomputer, those skilled in the art will recognize that those aspectsalso may be implemented in combination with other program modules.Generally, program modules include routines, programs, components, datastructures, etc. that perform particular tasks or implement particularabstract data types.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a conventional personal computer 102, including aprocessing unit 104, a system memory 106, and a system bus 108 thatcouples the system memory to the processing unit 104. The system memory106 includes read-only memory (ROM) 110 and random-access memory (RAM)112. A basic input/output system 114 (BIOS), containing the basicroutines that help to transfer information between elements within thepersonal computer 102, such as during startup, is stored in ROM 110. Thepersonal computer 102 further includes a hard disk drive 116, a magneticdisk drive 118, e.g., to read from or write to a removable disk 120, andan optical disk drive 122, e.g., for reading a CD-ROM disk 124 or toread from or write to other optical media. The hard disk drive 116,magnetic disk drive 118, and optical disk drive 122 are connected to thesystem bus 108 by a hard disk drive interface 126, a magnetic disk driveinterface 128, and an optical drive interface 130, respectively. Thedrives and their associated computer-readable media provide nonvolatilestorage for the personal computer 102. Although the description ofcomputer-readable media above refers to a hard disk, a removablemagnetic disk, and a CD-ROM disk, it should be appreciated by thoseskilled in the art that other types of media that are readable by acomputer, such as magnetic cassettes, flash memory cards, digital videodisks, Bernoulli cartridges, ZIP disks, and the like may also be used inthe exemplary operating environment.

A number of program modules may be stored in the drives and RAM 112,including an operating system 132, one or more application programs 134,other program modules 136, and program data 138. A user may entercommands and information into the personal computer 102 through inputdevices such as a keyboard 140 or a mouse 142. Other input devices (notshown) may include a microphone, touchpad, joystick, game pad, satellitedish, scanner, or the like. These and other input devices are oftenconnected to the processing unit 104 through a user input interface 144that is coupled to the system bus, but may be connected by otherinterfaces (not shown), such as a game port or a universal serial bus(USB). A display device 158 is also connected to the system bus 108 viaa display subsystem that typically includes a graphics display interface156 and a code module, sometimes referred to as a display driver, tointerface with the graphics display interface. While illustrated as astand-alone device, the display device 158 could be integrated into thehousing of the personal computer 102. Furthermore, in other computingsystems suitable for implementing the invention, such as a personaldigital assistant (PDA), the display could be overlaid with atouch-screen. In addition to the elements illustrated in FIG. 1,personal computers also typically include other peripheral outputdevices (not shown), such as speakers or printers.

The personal computer 102 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 146. The remote computer 146 may be a server, a router, a peerdevice, or other common network node, and typically includes many or allof the elements described relative to the personal computer 102. Thelogical connections depicted in FIG. 1 include a local area network(LAN) 148 and a wide area network (WAN) 150. Such networkingenvironments are commonplace in offices, enterprise-wide computernetworks, intranets, and the Internet.

When used in a LAN networking environment, the personal computer 102 isconnected to the LAN 148 through a network interface 152. When used in aWAN networking environment, the personal computer 102 typically includesa modem 154 or other means for establishing communications over the WAN150, such as the Internet. The modem 154, which may be internal orexternal, is connected to the system bus 108 via the user inputinterface 144. In a networked environment, program modules depictedrelative to the personal computer 102, or portions thereof, may bestored in the remote memory storage device. It will be appreciated thatthe network connections shown are exemplary and other means ofestablishing a communications link between the computers may be used. Inaddition, the LAN 148 and WAN 150 may be used as a source of nonvolatilestorage for the system.

FIG. 2 is a block diagram of an exemplary networked computingenvironment 200 suitable for operating the present invention. Theexemplary networked computing environment 200 includes a computingdevice, such as the personal computer 102 described in regard to FIG. 1,for interacting with a user, and upon which the user may view filesstored either locally or remotely to the computing device. While thefollowing discussion describes the present invention in relation to apersonal computer, it should be understood that the computing device 102includes many types of physical devices including, but not limited tomini- and mainframe computers, PDAs, tablet computers, and other devicescapable of interacting with a user and displaying files and contentstored on the computing device and elsewhere.

The exemplary networked computing environment 200 may also include oneor more remote servers, such as server 204 that stores files accessibleto the computing device 102, and connected to the computing device via acommunications network, such as the Internet 206, as shown in FIG. 2. Inaddition, the computing device 102 may also be connected to otherinformation sources storing files or other content, such as a remotedatabase 208. Those skilled in the art will recognize that files andinformation stored on both the remote server 204 and the remote database208, as well as on local storage devices such as hard disk drive 166(FIG. 1), may be accessible to, and displayable on, the computing device102 as part of an integrated file system on the computing device.Additionally, while a particular configuration of a remote server 204and remote database 208 is presented in FIG. 2, those skilled in the artwill readily recognize that this particular configuration is forillustrative purposes only, and should not be construed as limiting uponthe present invention.

FIG. 3 illustrates an exemplary file viewer 300 having a conventionaladdress bar 302 associated with displaying files in a computer filesystem, as found in the prior art. For purposes of the presentdiscussion, a file viewer is a view or window on a display device, suchas display device 158 (FIG. 1), for displaying files or other content toa user. A file viewer may be a window corresponding to an executableprogram specifically for displaying files to a user. Alternatively, afile viewer may be a view within an open or closed dialog box on anexecutable program that must save or retrieve data from a storage deviceconnected locally or remotely to the computer system. It should be notedthat the above examples of a file viewer are illustrative, and shouldnot be construed as limiting upon the present invention.

An address in the conventional address bar 302 corresponds to a specificlocation in a file system. As previously described, in order to edit theaddress displayed in the conventional address bar 302, a user mustmodify the address according to specific knowledge of the file system.Alternatively, a user may select an entry in a tree view 304 to navigateto an alternative location. Those skilled in the art will recognize thatother controls external to the address bar 302 may also be availablethat are not shown in the exemplary file view 300. While the addressdisplayed in the conventional address bar 302 corresponds to a specificlocation in a file system, related files distributed among multiplefolders in the file system cannot be displayed in conjunction with theconventional address bar 302.

FIG. 4 illustrates an exemplary file viewer 400 having a virtual addressbar 402 associated with displaying files in a computer file system. Thevirtual address bar 402, having a virtual address 404, is configured todisplay similar information to that displayed by the conventionaladdress 304 of the prior art file viewer 300 of FIG. 3. A virtualaddress, also referred to as a virtual path, references files stored ina computer file system according to selection criteria.

Similar to a conventional address, such as address 304 of FIG. 3, thevirtual address's selection criteria may reference files stored in aspecific location in the file system hierarchy. However, in contrast toa conventional address, the virtual address's selection criteria mayalso reference files irrespective of their specific file systemlocation. Thus, a virtual address may reference files stored in multiplelocations in a computer file system including physical and virtuallocations. As shown in FIG. 4, the file viewer 400, according to thevirtual address 404 in the virtual address bar 402, is able to displayadditional files, such as files 406 and 408, not found in the fileviewer 300 of FIG. 3. Additionally, the virtual address bar 402 may alsobe utilized to display content other than files in a computer filesystem. For example, the virtual address bar 402 may be used toreference content including system devices, system services, or Internetlocations.

FIG. 5A illustrates manipulating a segment of the virtual address 404 inthe virtual address bar 402 in order to navigate in a computer filesystem. Each virtual address bar, such as virtual address bar 402, iscomprised of one or more interactive segments, such as segments 502,504, 506, and 508. Each segment in a virtual address bar may correspondto one or more predetermined filters, or selection criteria, on all ofthe available content or files accessible to a computer file system.Collectively, the filters of all of the segments in a virtual addressbar 402 represent the virtual address bar's virtual address.

The first segment in a virtual address bar, such as segment 502, isreferred to as a root segment, or root filter. The root segmentrepresents the broadest category of content available for selection bythe virtual address bar 402. For example, segment 502 “Files” wouldlikely represent a filter that references all files accessible to thecomputer file system. Alternatively, a root segment may represent afilter that references all system services available to the user on thecomputer system, or a filter that references all hardware devicesinstalled in the computer system. Those skilled in the art willrecognize that numerous other alternative root filters may be utilizedby the present invention. Thus, the above described examples are givenfor illustrative purposes, and should not be construed as limiting uponthe present invention. Additionally, the labels displayed for eachsegment, such as “Files” on the root segment 502, are illustrative andshould not be construed as limiting upon the present invention.According to one illustrative embodiment, a label displayed on a segmentis user configurable.

Each additional segment in a virtual address bar 402, such as segments504, 506, and 508, represent additional filters to be applied whenselecting and displaying files or content in a file viewer 400. Forexample, root segment 502 “Files” references all files available to thecomputer system. Segment 504 “Document Library” filters the filesselected by the root segment 502, by selecting those files that weregenerated as documents by the user, such as through a word processor,spreadsheet, or some other document generating application. Segment 506“Word Documents” filters the files selected by segment 504 according tothose documents that were generated using a word processor, such asMicrosoft Corporation's Word application. Finally, segment 508 “AuthorA” filters the word processing documents selected by segment 506according to whether they were authored by “Author A.” Thus, contentselected according to the virtual address represented in the virtualaddress bar 402 must satisfy the filters corresponding to all of thesegments in the virtual address bar.

Segments in the virtual address bar 402 are generally ordered from thosefilters that are most inclusive, to those filters that are leastinclusive. For example, as previously discussed, segment 502 “Files” isthe broadest and most inclusive. Segments 506 “Word Documents” andsegment 508 “Author A” are less inclusive. The virtual address bar 402illustrates the ordering of segments from left to right, and, forpurposes of the present discussion, segments 504, 506, and 508 aresubsequent to the root segment 502. However, it should be understoodthat other orientations are possible, such as a top-down arrangement,without departing from the scope of the invention. Thus, the orientationfrom left to right should be viewed as illustrative, and not construedas limiting on the present invention.

As previously mentioned, segments in a virtual address bar 402, such assegments 502, 504, 506, and 508, do not necessarily correspond tospecific locations in a computer file system, such as folders, drives,and directories. Thus, segment 504 “Document Library” may referencefiles or content distributed on multiple servers, drives, orfolders/directories. However, certain segments in a virtual address bar402 may reference specific locations with a computer file systemhierarchy. A further discussion of virtual address segments referencingspecific file system locations is given below in regard to FIGS. 9A and9B.

In contrast to a conventional address bar, each segment in a virtualaddress bar 402 represents an actionable, interactive user interfaceelement. For example, a segment in a virtual address bar 402 isresponsive to user selection, monitors whether a cursor is located overthe segment for a specific period of time, and may be removed from thevirtual address bar by a dragging user interaction. Hence, as shown inFIG. 5A, a user may place a cursor 510 over a segment in the virtualaddress bar 402, such as segment 504 “Document Library,” to select, orclick, on that segment in order to navigate to that level, i.e.,truncate the virtual address at that segment, as described in regard toFIG. 5B.

FIG. 5B illustrates the results of selecting a segment 504 in thevirtual address bar 402. By clicking on the segment 504 in the virtualaddress bar 402, the user is indicating a desire to navigate to thatlevel in the virtual address. In effect, the user is trimming off thosefilters subsequent to the selected segment. For example, by clicking onsegment 504 “Document Library” (FIG. 5A), the resulting virtual address404 no longer contains segments 506 “Word Documents” and 508 “Author A”(FIG. 5A). Additionally, because the user has navigated to a lessrestrictive set of filters, the resulting virtual address 404 in thevirtual address bar 402 is more inclusive. This is indicated by theaddition of documents in the file viewer 400 of FIG. 5B not previouslyfound in the file viewer 400 of FIG. 5A, including document 512,document 514, and document 516, and by the presence of a scroll button518 indicating that additional files may be viewed that cannot bedisplayed in the file viewer 400 (FIG. 5B) due to space limitations.

FIG. 5C is similar to FIG. 5A, but replaces segment 508 with segment520. Segment 520 includes two filters or selection criteria, “2002” and“2003”, which are logically combined to produce the results displayed inthe file viewer 400. The “,” between the two filters or selectioncriteria serves as a logical operand. It will be understood that Booleanoperators such as AND, OR, NOT, NAND, NOR, XOR, etc. may be applied. Inthe present implementation, the “,” serves as an “OR” operator so itemswhich satisfy all the preceding filters or selection criteria (Files,Document Library, Word Documents) and which either were created in“2002” or were created in “2003” satisfy the logical expression and arepresented in the file viewer 400. The two filters or selection criteriamay identify items in virtual or physical locations. For example, onefilter or selection criteria may identify items in a physical location,while the other may identify items in a virtual location. Any number offilters or selection criteria may be logically combined in a singlesegment, but for practical purposes, it would better to limit the numbercombined to a number which can be displayed together on the address barto minimize user confusion. While logically combining filters orselection criteria across properties is within the scope of theinvention, it would be preferable to logically combine filters orselection criteria within the same property for organizational purposesand to avoid potential user confusion.

It will be appreciated that a logical combination of filters orselection criteria may occur within one or more segments in the addressbar. If a segment were added to succeed segment 520 in FIG. 5C, forexample with filter “Author A”, then the items displayed in the fileviewer would be further narrowed to word documents created in “2002” orin “2003”, which were authored by A. Selecting the segment DocumentLibrary from FIG. 5C results in the file viewer 400 shown in FIG. 5B, inwhich the segments “Word Documents” and “2002, 2003” have been removedand the files which meet the filter “Document Library” are presented.

In addition to selecting segments in a virtual address bar to navigateto a less restrictive segment, a user may also wish to navigate to, orselect peer filters of current segments in a virtual address. A peerfilter is an alternative filter that may be selected and applied to agiven segment in the virtual address bar. For example, with reference toFIG. 5A, peer filters for segment 506 “Word Documents” may includefilters such as “Excel Documents,” “Journals,” and the like. Other typesof filters, including specific file system locations, hardware devices,or computer services, may also be applied to a given segment in thevirtual address bar. Peer filters may or may not be logically related toa given segment's current filter. Each segment in a virtual address barmay have peer filters. Selecting a peer filter of a segment in a virtualaddress bar is sometimes referred to as navigating laterally. Selectingpeer filters of segments in a virtual address bar is described below inregard to FIGS. 6A-6D, and also in regard to FIG. 10.

FIGS. 6A-6D are pictorial diagrams illustrating selecting a peer filterassociated with a segment of virtual address in a virtual address bar600. As shown in FIG. 6A, virtual address bar 600 has a virtual addresscomprising multiple segments, segments 602-608. In order to select apeer filter for a given interactive segment in a virtual address bar600, a user must make an alternative selection, or alternativemanipulation, of that interactive segment. One way to make analternative selection is to right click on a given segment. Rightclicking is known in the art and refers to using a secondary button on amouse, or other input device, where the secondary button is typically onthe right-hand side of the mouse. Alternatively, because an interactivesegment can monitor when a cursor is located over it, an alternativeselection may be made by locating the cursor over an interactive segmentand leaving the cursor in place for predetermined amount of time,sometimes referred to as hovering. However, while the present discussiondescribes alternatives for causing peer filters to be displayed, theyare for illustration, and should not be construed as limiting upon thepresent invention. Those skilled in the art will recognize that thereare numerous alternatives for generating an alternative selection.

To illustrate alternatively selecting a segment, with reference to FIG.6A, a user first places the cursor 610 over segment 604 “DocumentLibrary” for a predetermined amount of time, i.e., hovers over thesegment, to select that segment. FIG. 6B demonstrates the results ofalternatively selecting segment 604 “Document Library” in the virtualaddress bar 600. As shown in FIG. 6B, after alternatively selectingsegment 604 “Document Library,” a peer filter view 612 is displayedincluding peer filters corresponding to the selected segment. It shouldbe understood that the peer filters presented in the peer filter view612 are for illustrative purposes only, and should not be construed aslimiting upon the present invention.

In order to select an alternative peer filter, as shown in FIG. 6C, theuser positions the cursor 610 over one of the filters presented in thepeer filter view 612, such as peer filter 614, and selects the peerfilter. As shown in FIG. 6D, after selecting the alternative peer filter614, the previously selected segment 604 (FIG. 6A) is replaced with anew segment 616 representing the selected alternative peer filter 614.Additionally, those segments that followed the alternatively selectedsegment 604 in the virtual address bar 600 of FIG. 6A, specificallysegments 606 “Journals” and 608 “All Documents in 2002”, are removedfrom the virtual address bar 600 in FIG. 6D. Although not shown, itfollows that any files or content previously selected according tosegments 604 “Document Library”, 606 “Journals”, and 608 “All DocumentsIn 2002” would no longer be displayed in a corresponding file viewer,and only those files or content selected according to segments 602“Files” and 616 “Picture Library” would be displayed.

In accordance with another aspect of the invention, a user may also wishto navigate to, or select, child filters or selection criteria ofcurrent segments in a virtual address. In a file tree structure, aparent node (or parent filter) has children represented by child nodes.Each child node is a child filter or selection criteria and furtherrestricts the parent node or parent filter or selection criteria. Eachsegment in a virtual address bar may have child filters or selectioncriteria. In FIG. 5A, segment 504 is the child of segment 502. Selectingchild filters or selection criteria of segments in a virtual address baris described below in regard to FIGS. 13A-13D, and also in regard toFIG. 12.

FIGS. 13A-13D are pictorial diagrams illustrating selecting a childfilter or selection criteria associated with a segment of virtualaddress in a virtual address bar 1300. As shown in FIG. 13A, virtualaddress bar 1300 has a virtual address comprising multiple segments,segments 1302-1308. In order to select a child filter or selectioncriteria for a given interactive segment in a virtual address bar 1300,a user may select a child control associated with the given interactivesegments. Child controls 1303, 1305, 1307 and 1309 are associated withinteractive segments 1302, 1304, 1306 and 1308, respectively. It will beappreciated that each segment and its associated child control may forma split button.

An example of selecting a child filter or selection criteria will bedescribed in connection with FIGS. 13B-13D. To select a child filter orselection criteria, with reference to FIG. 13A, a user first places thecursor 1310 over the child control 1305 for a predetermined amount oftime, i.e., hovers over the control, to select the child control. Otherselection operations are possible as well such as selecting the controlby performing a left click operation on the child control 1305. FIG. 13Bdemonstrates the results of selecting the child control 1305 associatedwith the segment “Files” in the virtual address bar 1300. As shown inFIG. 13B, after selecting the child control 1305, a child view 1312 isdisplayed including a list of child filters or selection criteria forthe corresponding interactive segment 1302 and the corresponding iconfor the child filter or selection criteria. The icon may identify aparticular type for the child filter or selection criteria, such aswhether it represents a virtual or physical location and the particulartype of virtual or physical location. In this example of the child view,a split menu is shown with the icons in the left hand column and thechild filters or selection criteria in the right hand column of thechild view. It should be understood that the child filters or selectioncriteria presented in the child view 1312 and the icons are forillustrative purposes only, and should not be construed as limiting uponthe present invention. Also, it should be appreciated that the icons maybe displayed adjacent to any address type whether or not part of a childview, peer view or otherwise.

In order to select a child filter or selection criteria, as shown inFIG. 13C, the user positions the cursor 1310 over one of the childfilters or selection criteria presented in the child view 1312, such aschild filter or selection criteria 1314, and selects the child filter orselection criteria 1314. As shown in FIG. 13D, after selecting the childfilter or selection criteria 1314, the segment 1304 succeeding theparent segment 1302 associated with the child control 1305 (FIG. 13A) isreplaced with a new segment 1316 representing the selected child filteror selection criteria 1314. Additionally, those segments that followedthe segment 1304 in the virtual address bar 1300 of FIG. 13A,specifically segments 1306 “Journals” and 1308 “All Documents in 2002”,are removed from the virtual address bar 1300 in FIG. 13D. Although notshown, it follows that any files or content previously selectedaccording to segments 1304 “Document Library”, 1306 “Journals”, and 1308“All Documents In 2002” would no longer be displayed in a correspondingfile viewer, and only those files or content selected according tosegments 1302 “Files” and 1316 “Picture Library” would be displayed.

Segments may be added to a virtual address in a virtual address barthrough various user interactions at the end of the existing segments.To add a filter to a virtual address in a virtual address bar, a usermay manipulate an actionable control associated with a particular filterfound on a window, or file viewer with the virtual address bar. Forexample, with reference to the file viewer 400 of FIG. 4, a user mayclick on the actionable control 412 “2003” to add a corresponding filterto the virtual address 404 in the virtual address bar 402. Alternatively(not shown), a user may manually enter in a known filter at the end ofthe virtual address by typing the filter's name. Numerous other ways ofadding a filter to a virtual address exist, all of which arecontemplated as falling within the scope of the present invention. Thus,it should be understood that the above examples are for illustrationpurposes, and should not be construed as limiting upon the presentinvention.

When a filter is added to a virtual address in a virtual address bar, aprocess is undertaken to ensure that the newly added filter does notconflict with any filters currently existing as part of the virtualaddress. If the newly added filter conflicts with an existing filter,the existing filter is removed. A newly added filter conflicts with anexisting filter in a virtual address if the newly added filter variesfrom the breadth of the existing filter, being either more or less broadthan the existing filter. Additionally, a newly added filter conflictswith an existing filter if the newly added filter is mutually exclusiveto the existing filter. However, a newly added filter that is equivalentto an existing filter is not added because it has no effect. It shouldbe understood that the above description of conflicts is given forillustration purposes, and should not be construed as limiting upon thepresent invention. Those skilled in the art will recognize that otherconflicts between filters may exist that are contemplated as fallingwithin the scope of the present invention.

FIGS. 7A-7D are pictorial diagrams illustrating adding filters to avirtual address 702 in a virtual address bar 700, and removingconflicting existing filters. FIG. 7A illustrates an exemplary virtualaddress 702 displayed in a virtual address bar 700. As shown in FIG. 7B,a new filter, represented by segment 706 “2002”, is added to the virtualaddress 702. As previously described, new filters are added to the endof the virtual address, as indicated by placing segment 706 “2002” atthe end of the segments in the virtual address bar 700 of FIG. 7B.Thereafter, the process undertaken for adding segment 706 “2002”determines that the added filter does not conflict with any currentfilters in the virtual address 702. Thus, no existing filters areremoved from the virtual address 702.

As shown in FIG. 7C, another filter is added to the virtual address 702,represented by segment 708 “Author A.” The process undertaken for addingthis new filter determines that the new filter, “Author A,” wouldconflict with the filter represented by segment 704 “Author A-F” becausethe new filter, “Author A,” is narrower than the existing filter.Accordingly, segment 704 “Author A-F” is removed from the virtualaddress bar 700, and segment 708 “Author A” is added to the end of thesegments in the virtual address bar.

FIG. 7D illustrates the results of adding segment 710 “2003” to thevirtual address bar 700 of FIG. 7C. Filters in a virtual address 702 arerestrictive, not cumulative. Each filter further restricts the selectedcontent. Thus, mutually exclusive filters would prevent the virtualaddress 702 from selecting any files or content, and therefore, create aconflict. As illustrated in FIG. 7D, segment 706 “2002” (FIG. 7C) isremoved from the virtual address bar 700 because of a conflict as it ismutually exclusive with the newly added segment 710 “2003.”

When a virtual address bar, such as virtual address bar 800 (FIG. 8A),cannot completely display the virtual address due to size limitations ofthe virtual address bar, a portion of the virtual address is displayedaccording to the size of the virtual address bar. However, theundisplayed portions of the virtual address may still be accessed by theuser. More specifically, the virtual address bar displays actionablevisual indicators to scroll the virtual path within the virtual addressbar. FIGS. 8A and 8B illustrate an exemplary virtual address bar 800displaying a virtual address where the virtual address exceeds thevirtual address bar's display capacity. As shown in FIGS. 8A and 8B,scroll icons 802 and 804 indicate the direction the virtual address bar800 may scroll in order to display the previously undisplayed portionsof the virtual address. However, while the illustrative diagramsdemonstrate the use of scroll icons, it is for illustrative purposesonly, and should not be construed as limiting on the present invention.Those skilled in the art will recognize that there are numerous otherways of scrolling the virtual address in a virtual address bar, all ofwhich are contemplated as falling within the scope of the presentinvention.

According to another aspect, if an overflow condition occurs such thatthe address bar is too small to fit all the interactive segments thatcomprise the address, the interactive segments displayed are the mostspecific. For instance with reference to FIG. 8C, the broaderinteractive segment FILES is not included while the most specificinteractive segments are displayed on the virtual address bar 800. Thechevron 806 serves as an overflow indicator to indicate that theadjacent interactive segment DOCUMENT LIBRARY has ancestors that are notdisplayed. The chevron 806 has dual roles in that it also serves as achild control as well as an overflow indicator. As shown in FIG. 8C, theselection of the chevron 806 provides the child filter or selectioncriteria list including filters POWERPOINT DOCUMENTS, WORD DOCUMENTS,VISIO DOCUMENTS and EXCEL DOCUMENTS for the interactive segment DOCUMENTLIBRARY and also displays an ancestor list 808 for the interactivesegment DOCUMENT LIBRARY including the ancestor FILES. Selection of anancestor filter or child filter from the ancestor or child filter listsresults in the address bar being modified to display that filter andremove all subsequent filters. It will be appreciated that the chevron806 could serve as a control for displaying an ancestor list and anindependent child control may exist.

FIG. 9A is a block diagram illustrating a virtual address bar 900 havingsegments referencing both virtual and actual locations in a file system.As previously discussed, a virtual address in a virtual address bar 900may contain segments referencing specific locations within a computerfile system hierarchy, and also contain segments referencing virtual, orlogical, locations within a computer file system. Files or contentreferenced by a virtual segment may be distributed among many physicallocations. A virtual address bar 900 may contain segments referencingphysical locations and segments referencing virtual locations. Forexample, virtual address bar 900 includes segment 902 “Local Disk (C:)”referring to files or content contained in a specific area in thecomputer file system, in particular drive “C.” Alternatively, segment904 “Case Files” of itself refers to files or content stored in multiplefolders in the computer file system hierarchy associated with casefiles. However, in combination with segment 902 “Local Disk (C:)”,segment 904 “Case Files” references only those case files found on localdrive “C.” Additionally, segment 906 “Contains ‘Fax’” further filtersthe files on local disk C: and associated with the case files accordingto whether they contain the word “Fax.”

As shown in FIG. 9B, a virtual address bar 900 may be configured tofunction as a conventional address bar. For example, with reference toFIG. 9A, by placing a cursor 908 in the empty space of the virtualaddress bar 900 and clicking there, the virtual address bar 900 switchesfrom displaying segments representing a virtual address, to functioningas a conventional address bar displaying a conventional address 910, asshown in FIG. 9B. The conventional address 910 in the virtual addressbar 900 of FIG. 9B approximates the virtual address displayed in thevirtual address bar 900 of FIG. 9A. However, those filters in thevirtual address bar 900 of FIG. 9A that do not correspond to physicallocations in a computer file system cannot be displayed and are removedfrom the conventional address 910. Specifically, segment 904 “CaseFiles” and segment 906 “Contains ‘Fax’” are not part of the conventionaladdress 910 (FIG. 9B).

In order to reconfigure a virtual address bar 900, functioning as aconventional address bar, to function normally as a virtual address bar,the user must so indicate in a manner other than clicking on the emptyarea of the bar. When configured to function as a conventional addressbar, a virtual address bar must permit the user to click in the emptyarea for address editing purposes. Clicking in the empty area of aconventional address bar places an editing cursor at the end of theaddress/path for editing purposes. Accordingly, to reconfigure thevirtual address to again function in its normal manner as describedabove, a user must press a predefined key or key sequence, such as theEsc or Tab key, or by place the focus on another area of a window orview by clicking on another area of the window or view. Those skilled inthe art will recognize that other user actions may also be utilized toreconfigure the virtual address bar 900 to again function in its normalmode as described above, all of which are contemplated as falling withinthe scope of the present invention.

FIG. 10 is a flow diagram illustrative of a peer filter selectionroutine 1000 for selecting a peer filter for an identified segment in avirtual address bar. Beginning at block 1002, the routine 1000 detects apeer filter selection activation. Activating the peer filter selectionprocess is described above in regard to FIGS. 6A-6D. At block 1004, thesegment for which the peer filter selection has been requested isidentified. At block 1006, the peer filters for the identified segmentare determined from a predetermined list of peer filters. At block 1008,the peer filters are displayed to the user. At block 1010, the user'speer filter selection from peer filters displayed is obtained. At block1012, the virtual address is truncated by removing the identifiedsegment from the virtual address bar, and any additional segments thatfollow the identified segment. At block 1014, a segment representing theselected peer filter is appended to the remaining segments in thevirtual address bar. Thereafter, the routine 1000 terminates.

FIG. 11 is a flow diagram illustrating an exemplary add filter routine1100 for adding a filter to a virtual address in a virtual address bar.Beginning at block 1102, the exemplary routine 1100 obtains the filterto be added to the virtual address. For example, as previously discussedin regard to FIG. 4, filters may be added to the virtual addressaccording to user actions external to the virtual address bar, oralternatively, may be directly added to the virtual address bar bytyping in the name of a predefined filter.

At block 1104, a determination is made whether the new filter conflictswith an existing filter already in the virtual address. As previouslydiscussed in regard to FIGS. 7A-7D, a new filter may conflict with anexisting filter by substantially narrowing or broadening the scope ofthe existing filter. Alternatively, a new filter may conflict with anexisting filter because a new filter is mutually exclusive to anexisting filter. If, at decision block 1104, the new filter conflictswith an existing filter, at block 1106, the existing filter is removedfrom the virtual address. Alternatively, at 1104, if the new filter doesnot conflict with an existing filter or, after removing the existingconflicting filter in block 1106, at block 1108, the new filter is addedat the end of the virtual address. Thereafter, the exemplary routine1100 terminates.

FIG. 12 is a flow diagram illustrative of a selection routine 1200 forselecting a child filter or selection criteria for an associated segmentin a virtual address bar. Beginning at block 1202, the routine 1200detects a selection of a child control. The child filter selectionprocess is described above in regard to FIGS. 13A-13D. At block 1204,the parent segment associated with the selected child control isidentified. At block 1206, the child filters for the identified parentsegment are determined from a predetermined list of child filters. Atblock 1208, the child filters are displayed to the user. At block 1210,a child filter selection from the displayed child filters is receivedfrom the user. At block 1212, the virtual address is truncated byremoving the segments succeeding the parent segment. At block 1214, asegment representing the selected child filter is appended to theremaining segments in the virtual address bar. Thereafter, the routine1300 terminates.

While the preferred embodiments of the invention have been illustratedand described, it will be appreciated that various changes can be madetherein without departing from the spirit and scope of the invention.

What is claimed is:
 1. One or more computer readable media storingcomputer-useable instructions that, when used by one or more computingdevices, cause the one or more computing devices to perform operationscomprising: displaying an address bar having an interactive segmentincluding at least two selection criteria logically combined forselecting content for display.
 2. The one or more computer readablemedia of claim 1, wherein the operations further comprise displayingcontent satisfying the at least two selection criteria in response to auser selection of the interactive segment.
 3. The one or more computerreadable media of claim 1, wherein the at least two selection criteriaare logically combined according to a logical AND operation.
 4. The oneor more computer readable media of claim 1, wherein the at least twoselection criteria are logically combined according to a logical ORoperation.
 5. The one or more computer readable media of claim 1,wherein at least one selection criteria includes selection criteria forselecting content stored in a virtual location.
 6. The one or morecomputer readable media of claim 1, wherein at least one selectioncriteria includes selection criteria for selecting content stored in aphysical location.
 7. The one or more computer readable media of claim1, wherein the operations further comprise displaying at least oneconventional segment that references content at the content's particularlocation within a hierarchical file system structure.
 8. The one or morecomputer readable media of claim 7, wherein the operations furthercomprise displaying content stored at the content's particular locationin response to a user selection of the conventional segment.
 9. The oneor more computer readable media of claim 7, wherein the conventionalsegment is displayed in a first initial position on the address bar andthe interactive segment is displayed in a second subsequent position onthe address bar.
 10. The one or more computer readable media of claim 9,wherein the at least two selection criteria of the interactive segmentfurther restrict content selected for display from the contentreferenced by the at least one conventional segment.
 11. The one or morecomputer readable media of claim 9, wherein the operations furthercomprise removing the interactive segment from the address bar inresponse to user interaction with the conventional segment.
 12. The oneor more computer readable media of claim 1, wherein the operationsfurther comprise displaying a second interactive segment including atleast one additional selection criteria.
 13. The one or more computerreadable media of claim 12, wherein the second interactive segmentprecedes the first interactive segment and the at least two selectioncriteria of the first interactive segment further restrict the contentselected by the at least one additional selection criteria of the secondinteractive segment.
 14. One or more computer readable media storingcomputer-useable instructions that, when used by one or more computingdevices, cause the one or more computing devices to perform operationscomprising: receiving a user indication of at least two contentselection criteria; generating an interactive segment that includes theat least two content selection criteria logically combined for selectingcontent for display; displaying an address bar having the interactivesegment; and displaying content selected in accordance with the at leasttwo content selection criteria.
 15. The one or more computer readablemedia of claim 14, wherein the content selected in accordance with theat least two content selection criteria is displayed in response to auser selection of the interactive segment in the address bar.
 16. Theone or more computer readable media of claim 14, wherein the at leasttwo selection criteria are logically combined according to a logical ANDoperation.
 17. The one or more computer readable media of claim 14,wherein the operations further comprise displaying at least oneconventional segment that references content at the content's particularlocation within a hierarchical file system structure.
 18. The one ormore computer readable media of claim 17, wherein the operations furthercomprise displaying content stored at the content's particular locationin response to a user selection of the conventional segment.
 19. The oneor more computer readable media of claim 17, wherein the conventionalsegment is displayed in a first initial position on the address bar andthe interactive segment is displayed in a second subsequent position onthe address bar, and wherein the operations further comprise removingthe interactive segment from the address bar in response to userinteraction with the conventional segment.
 20. A computing devicecomprising: one or more processors; and one or more computer readablemedia storing computer-useable instructions for displaying an addressbar, the address bar including an interactive segment including at leasttwo selection criteria logically combined for selecting content fordisplay.